package net.servir.capacidades.service.impl;

import java.util.LinkedList;
import java.util.List;

import net.servir.capacidades.dao.CapacidadesDAO;
import net.servir.capacidades.dao.MantenimientoDAO;
import net.servir.capacidades.model.FuncionLeyenda;
import net.servir.capacidades.model.GrupoCalificacion;
import net.servir.capacidades.model.Persona;
import net.servir.capacidades.model.PreguntaServicio;
import net.servir.capacidades.model.PreguntaTipo;
import net.servir.capacidades.model.Profesion;
import net.servir.capacidades.model.PuestoTipo;
import net.servir.capacidades.model.Regimen;
import net.servir.capacidades.model.SectorPregunta;
import net.servir.capacidades.model.Enumerados.GrupoDatosMaestro;
import net.servir.capacidades.model.SegPerfil;
import net.servir.capacidades.model.SegPerfilPermiso;
import net.servir.capacidades.model.SegPermiso;
import net.servir.capacidades.model.SegRecurso;
import net.servir.capacidades.model.Usuario;
import net.servir.capacidades.service.MantenimientoService;
import net.servir.capacidades.model.Restriccion;
import net.servir.capacidades.model.Wserror;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class MantenimientoServiceImpl implements MantenimientoService {

	@Autowired
	private MantenimientoDAO mantenimientoDAO; 

	@Autowired
	private CapacidadesDAO capacidadesDAO; 

	public PuestoTipo getPuestoTipo(Number idPuestoTipo)
	{
		return mantenimientoDAO.getPuestoTipo(idPuestoTipo);
	}
	public List<PuestoTipo> getPuestoTipos(Number idSistema)
	{
		return mantenimientoDAO.getPuestoTipos(idSistema);
	}
	public List<PuestoTipo> getPuestoTiposOperadores(Integer idSistema) {
		return mantenimientoDAO.getPuestoTiposOperadores(idSistema);
	}	

	public List<FuncionLeyenda> getFuncionesPorSistema(Number idSistema,GrupoDatosMaestro nivel)
	{
		return mantenimientoDAO.getFuncionesPorSistema(idSistema,nivel);
	}
	public List<SectorPregunta> getSectoresPregunta(GrupoDatosMaestro nivel)
	{
		return mantenimientoDAO.getSectoresPregunta(nivel);
	}
	public List<GrupoCalificacion> getGruposCalificacionPorSistema(Number idSistema)
	{
		return mantenimientoDAO.getGruposCalificacionPorSistema(idSistema);
	}
	public List<GrupoCalificacion> getGruposCalificacionNemotecnicoPorSistema(Number idSistema)
	{
		return mantenimientoDAO.getGruposCalificacionNemotecnicoPorSistema(idSistema);
	}
	public List<PreguntaServicio> getPreguntasServicio(Number idSistema)
	{
		return mantenimientoDAO.getPreguntasServicio(idSistema);
	}
	public List<PreguntaTipo> getPreguntaTipos(Number idSistema)
	{
		return mantenimientoDAO.getPreguntaTipos(idSistema);
	}
	public String esJefePuestoTipo(Number idPuestoTipo)
	{
		return mantenimientoDAO.esJefePuestoTipo(idPuestoTipo);
	}
	public String grabarProfesion(Profesion profesion)
	{
		return mantenimientoDAO.grabarProfesion(profesion);
	}
	public Integer grabarGrupoCalificacion(GrupoCalificacion grupoCalificacion)
	{
		return mantenimientoDAO.grabarGrupoCalificacion(grupoCalificacion);
	}

	public String grabarRegimen(Regimen regimen)
	{
		return mantenimientoDAO.grabarRegimen(regimen);
	}
	public String validarEliminarProfesion(String cod_profesion)
	{
		return mantenimientoDAO.validarEliminarProfesion(cod_profesion);
	}
	public String validarEliminarPerfil(Integer idPerfil)
	{
		return mantenimientoDAO.validarEliminarPerfil(idPerfil);
	}
	public String validarEliminarGrupoCalificacion(Integer id_grupo_califica)
	{
		return mantenimientoDAO.validarEliminarGrupoCalificacion(id_grupo_califica);
	}

	public String validarEliminarRegimen(String cod_regimen)
	{
		return mantenimientoDAO.validarEliminarRegimen(cod_regimen);
	}

	public void eliminarProfesion(String cod_profesion) {
		mantenimientoDAO.eliminarProfesion(cod_profesion);
	}

	public void eliminarPerfil(Integer idPerfil) {
		mantenimientoDAO.eliminarPerfil(idPerfil);
	}

	public void eliminarPermiso(SegPerfilPermiso segPerfilPermiso) {
		mantenimientoDAO.eliminarPermiso(segPerfilPermiso);
	}

	public void agregarPermiso(SegPerfilPermiso segPerfilPermiso) {
		mantenimientoDAO.agregarPermiso(segPerfilPermiso);
	}

	public void eliminarGrupoCalificacion(Integer id_grupo_califica){
		mantenimientoDAO.eliminarGrupoCalificacion(id_grupo_califica);
	}
	
	public void eliminarRegimen(String cod_regimen) {
		mantenimientoDAO.eliminarRegimen(cod_regimen);
	}
	public List obtenerUsuarios() {
		return mantenimientoDAO.obtenerUsuarios();
	}
	
	public LinkedList<Restriccion> getRestricciones() {
		return mantenimientoDAO.getRestricciones();
	}

	public Usuario obtenerUsuario(String codUsuario) {
		return mantenimientoDAO.obtenerUsuario(codUsuario);
	}

	public SegPerfil getSegPerfil(Integer idPerfil){
		return mantenimientoDAO.getSegPerfil(idPerfil);
	}

	public Persona getPersona(String codUsuario)
	{
		return capacidadesDAO.GetPersona(codUsuario);
	}
	public LinkedList<SegRecurso> getSegRecursos(Integer idPerfil)
	{
		return mantenimientoDAO.getSegRecursos(idPerfil);
	}
	
	public LinkedList<SegPermiso> getSegPermisos(Integer idRecurso, Integer idPerfil)
	{
		return mantenimientoDAO.getSegPermisos(idRecurso, idPerfil);
	}
	
	public LinkedList<SegPerfilPermiso> getSegPerfilPermiso(Integer idPerfil) 
	{
		return mantenimientoDAO.getSegPerfilPermiso(idPerfil);
	}
	public Integer grabarSegPerfil(SegPerfil segPerfil) {
		return mantenimientoDAO.grabarSegPerfil(segPerfil);
	}
	
	public LinkedList<Wserror> getWserrores() {
		return mantenimientoDAO.getWserrores();
	}
	public void setLogWS(Usuario usuario) {
		mantenimientoDAO.setLogWS(usuario);
		
	}
}
